package com.yf.notify.modules.sms.providers.qcloud.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * 消息发送错误返回
 * @author van
 */
public class MsgMap {

    public static final Map<String,String> map = new HashMap(){{
        put("FailedOperation.ContainSensitiveWord","短信内容中含有敏感词，请联系 腾讯云短信小助手。");
        put("FailedOperation.FailResolvePacket","请求包解析失败，通常情况下是由于没有遵守 API 接口说明规范导致的，请参考 请求包体解析1004错误详解。");
        put("FailedOperation.InsufficientBalanceInSmsPackage","套餐包余量不足，请 购买套餐包。");
        put("FailedOperation.JsonParseFail","解析请求包体时候失败。");
        put("FailedOperation.MarketingSendTimeConstraint","营销短信发送时间限制，为避免骚扰用户，营销短信只允许在8点到22点发送。");
        put("FailedOperation.PhoneNumberInBlacklist","手机号在免打扰名单库中，通常是用户退订或者命中运营商免打扰名单导致的，可联系 腾讯云短信小助手 解决。");
        put("FailedOperation.SignatureIncorrectOrUnapproved","签名未审批或格式错误。（1）可登录 短信控制台，核查签名是否已审批并且审批通过；（2）核查是否符合格式规范，签名只能由中英文、数字组成，要求2 - 12个字，若存在疑问可联系 腾讯云短信小助手。");
        put("FailedOperation.TemplateIncorrectOrUnapproved","模板未审批或内容不匹配。（1）可登录 短信控制台，核查模板是否已审批并审批通过；（2）核查是否符合 格式规范，若存在疑问可联系 腾讯云短信小助手。");
        put("FailedOperation.TemplateParamSetNotMatchApprovedTemplate","请求内容与审核通过的模板内容不匹配。请检查请求中模板参数的个数是否与申请的模板一致。若存在疑问可联系 腾讯云短信小助手。");
        put("FailedOperation.TemplateUnapprovedOrNotExist","模板未审批或不存在。可登录 短信控制台，核查模板是否已审批并审批通过。若存在疑问可联系 腾讯云短信小助手。");
        put("InternalError.OtherError","其他错误，请联系 腾讯云短信小助手 并提供失败手机号。");
        put("InternalError.RequestTimeException","请求发起时间不正常，通常是由于您的服务器时间与腾讯云服务器时间差异超过10分钟导致的，请核对服务器时间及 API 接口中的时间字段是否正常。");
        put("InternalError.RestApiInterfaceNotExist","不存在该 RESTAPI 接口，请核查 REST API 接口说明。");
        put("InternalError.SendAndRecvFail","接口超时或短信收发包超时，请检查您的网络是否有波动，或联系 腾讯云短信小助手 解决。");
        put("InternalError.SigFieldMissing","后端包体中请求包体没有 Sig 字段或 Sig 为空。");
        put("InternalError.SigVerificationFail","后端校验 Sig 失败。");
        put("InternalError.Timeout","请求下发短信超时，请参考 60008错误详解。");
        put("InternalError.UnknownError","未知错误类型。");
        put("InvalidParameterValue.ContentLengthLimit","请求的短信内容太长，短信长度规则请参考 国内短信内容长度计算规则。");
        put("InvalidParameterValue.IncorrectPhoneNumber","手机号格式错误，请参考 1016错误详解。");
        put("InvalidParameterValue.ProhibitedUseUrlInTemplateParameter","禁止在模板变量中使用 URL。");
        put("InvalidParameterValue.SdkAppIdNotExist","SdkAppId 不存在。");
        put("InvalidParameterValue.TemplateParameterFormatError","验证码模板参数格式错误，验证码类模板，模板变量只能传入0 - 6位（包括6位）纯数字。");
        put("InvalidParameterValue.TemplateParameterLengthLimit","单个模板变量字符数超过12个，企业认证用户不限制单个变量值字数，您可以 变更实名认证模式，变更为企业认证用户后，该限制变更约1小时左右生效。");
        put("LimitExceeded.AppCountryOrRegionDailyLimit","业务短信国家/地区日下发条数超过设定的上限，可自行到控制台应用管理>基础配置下调整国际港澳台短信发送限制。");
        put("LimitExceeded.AppCountryOrRegionInBlacklist","业务短信国家/地区不在国际港澳台短信发送限制设置的列表中而禁发，可自行到控制台应用管理>基础配置下调整国际港澳台短信发送限制。");
        put("LimitExceeded.AppDailyLimit","业务短信日下发条数超过设定的上限 ，可自行到控制台调整短信频率限制策略。");
        put("LimitExceeded.AppGlobalDailyLimit","业务短信国际/港澳台日下发条数超过设定的上限，可自行到控制台应用管理>基础配置下调整发送总量阈值。");
        put("LimitExceeded.AppMainlandChinaDailyLimit","业务短信中国大陆日下发条数超过设定的上限，可自行到控制台应用管理>基础配置下调整发送总量阈值。");
        put("LimitExceeded.DailyLimit","短信日下发条数超过设定的上限 (国际/港澳台)，如需调整限制，可联系 腾讯云短信小助手。");
        put("LimitExceeded.DeliveryFrequencyLimit","下发短信命中了频率限制策略，可自行到控制台调整短信频率限制策略，如有其他需求请联系 腾讯云短信小助手。");
        put("LimitExceeded.PhoneNumberCountLimit","调用接口单次提交的手机号个数超过200个，请遵守 API 接口输入参数 PhoneNumberSet 描述。");
        put("LimitExceeded.PhoneNumberDailyLimit","单个手机号日下发短信条数超过设定的上限，可自行到控制台调整短信频率限制策略。");
        put("LimitExceeded.PhoneNumberOneHourLimit","单个手机号1小时内下发短信条数超过设定的上限，可自行到控制台调整短信频率限制策略。");
        put("LimitExceeded.PhoneNumberSameContentDailyLimit","单个手机号下发相同内容超过设定的上限，可自行到控制台调整短信频率限制策略。");
        put("LimitExceeded.PhoneNumberThirtySecondLimit","单个手机号30秒内下发短信条数超过设定的上限，可自行到控制台调整短信频率限制策略。");
        put("MissingParameter.EmptyPhoneNumberSet","传入的号码列表为空，请确认您的参数中是否传入号码。");
        put("UnauthorizedOperation.IndividualUserMarketingSmsPermissionDeny","个人用户没有发营销短信的权限，请参考 权益区别。");
        put("UnauthorizedOperation.RequestIpNotInWhitelist","请求 IP 不在白名单中，您配置了校验请求来源 IP，但是检测到当前请求 IP 不在配置列表中，如有需要请联系 腾讯云短信小助手。");
        put("UnauthorizedOperation.RequestPermissionDeny","请求没有权限，请联系 腾讯云短信小助手。");
        put("UnauthorizedOperation.SdkAppIdIsDisabled","此 SdkAppId 禁止提供服务，如有需要请联系 腾讯云短信小助手。");
        put("UnauthorizedOperation.SerivceSuspendDueToArrears","欠费被停止服务，可自行登录腾讯云充值来缴清欠款。");
        put("UnauthorizedOperation.SmsSdkAppIdVerifyFail","SmsSdkAppId 校验失败，请检查 SmsSdkAppId 是否属于 云API密钥 的关联账户。");
        put("UnsupportedOperation.","不支持该请求。");
        put("UnsupportedOperation.ChineseMainlandTemplateToGlobalPhone","国内短信模板不支持发送国际/港澳台手机号。发送国际/港澳台手机号请使用国际/港澳台短信正文模板。");
        put("UnsupportedOperation.ContainDomesticAndInternationalPhoneNumber","群发请求里既有国内手机号也有国际手机号。请排查是否存在（1）使用国内签名或模板却发送短信到国际手机号；（2）使用国际签名或模板却发送短信到国内手机号。");
        put("UnsupportedOperation.GlobalTemplateToChineseMainlandPhone","国际/港澳台短信模板不支持发送国内手机号。发送国内手机号请使用国内短信正文模板。");
        put("UnsupportedOperation.UnsuportedRegion","不支持该地区短信下发。");
    }};

    /**
     * 获取消息
     * @param code
     * @return
     */
    public static String mapMsg(String code){
        if(map.containsKey(code)){
            return map.get(code);
        }
        return code;
    }
}
